<?php

namespace Api\Controller;

/**
 * 公众平台帐号管理接口
 * @author 许诺
 */
class PublicAccountController extends CommonController {

    protected function _initialize() {
        parent::_initialize();
    }

    /**
     * 添加公众号
     * 
     * @param int mp_type 公众号类型 1:订阅号 2:服务号
     * @param string nickname 公众号名称
     * @param string username 公众号帐号
     * @param string password 公众号密码
     * @param string phone 公众号手机号
     * @param string email 公众号邮箱
     * @param string icon_url 公众号头像地址
     * @param string qrcode_url 公众号二维码地址
     * @param int province_id 运营省份ID
     * @param int city_id 运营城市ID
     * @param string introduction 公众号介绍
     */
    public function add() {
        $public_account_model = D('PublicAccount');
        if (!$public_account_model->createAdd($this->param)) {
            parent::returnData(2, $public_account_model->getError());
        }
        if (!$public_account_model->add()) {
            parent::returnData(2, '添加失败');
        }
        parent::returnData(0, '添加成功');
    }

    /**
     * 删除公众号
     * 
     * @param int mp_id 公众号ID
     */
    public function delete() {
        $public_account_model = D('PublicAccount');
        $mp_id = $this->param['mp_id'];
        if (!is_numeric($mp_id) || $mp_id <= 0) {
            parent::returnData(2, 'mp_id(公众号ID)错误');
        }
        if (!$public_account_model->find($mp_id)) {
            parent::returnData(2, 'mp_id(公众号ID)不存在');
        }
        $public_account_model->status = 1;
        if (!$public_account_model->save()) {
            parent::returnData(2, '删除失败');
        }
        parent::returnData(0, '删除成功');
    }

    /**
     * 添加公众号
     * 
     * 除mp_id(公众号ID)为必填其他均为选填
     * 
     * @param int mp_id 公众号ID
     * @param int mp_type 公众号类型 1:订阅号 2:服务号
     * @param string nickname 公众号名称
     * @param string username 公众号帐号
     * @param string password 公众号密码
     * @param string phone 公众号手机号
     * @param string email 公众号邮箱
     * @param string icon_url 公众号头像地址
     * @param string qrcode_url 公众号二维码地址
     * @param int province_id 运营省份ID
     * @param int city_id 运营城市ID
     * @param string introduction 公众号介绍
     */
    public function modify() {
        $public_account_model = D('PublicAccount');
        if (!$public_account_model->createModify($this->param)) {
            parent::returnData(2, $public_account_model->getError());
        }
        if (!$public_account_model->save()) {
            parent::returnData(2, '修改失败');
        }
        parent::returnData(0, '修改成功');
    }

    /**
     * 查询公众号列表
     * 
     * 根据创建时间或更新时间作为条件的查询中，开始与结束参数均需传参，
     * 单独传开始或结束参数，该参数将被忽略。
     * 
     * @param string page_num 页码(默认1)
     * @param string page_size 分页数量(默认10)
     * @param string nickname_keyword 公众号名称查询关键词
     * @param int create_start_time 创建开始时间戳
     * @param int create_end_time 创建结束时间戳
     * @param int update_start_time 更新开始时间戳
     * @param int update_end_time 更新结束时间戳
     */
    public function select() {
        $public_account_model = D('PublicAccount');
        $data = $public_account_model->conditionSelect($this->param);
        parent::returnData(0, '查询成功', $data);
    }

    /**
     * 根据公众号ID查询单个公众号
     * 
     * @param int mp_id
     */
    public function find() {
        $public_account_model = D('PublicAccount');
        $item = $public_account_model->find($item);
        if (!$item) {
            parent::returnData(2, 'mp_id(公众号ID)不存在');
        }
        parent::returnData(0, '查询成功', $item);
    }

}
